<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Bakalarka: Dokumentace třídy toolTransformation</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generováno programem Doxygen 1.5.8 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Hlavní&nbsp;stránka</span></a></li>
      <li class="current"><a href="annotated.html"><span>Třídy</span></a></li>
      <li><a href="files.html"><span>Soubory</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Seznam&nbsp;tříd</span></a></li>
      <li><a href="hierarchy.html"><span>Hierarchie&nbsp;tříd</span></a></li>
      <li><a href="functions.html"><span>Seznam&nbsp;členů&nbsp;tříd</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>Dokumentace třídy toolTransformation</h1><!-- doxytag: class="toolTransformation" -->Transformace nástroje.  
<a href="#_details">...</a>
<p>
<code>#include &lt;<a class="el" href="transformation_8h-source.html">transformation.h</a>&gt;</code>
<p>

<p>
<a href="classtoolTransformation-members.html">Seznam všech členů.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Třídy</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">class &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtoolTransformation_1_1algorithmError.html">algorithmError</a></td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Vyjímka vyhozená při transformaci.  <a href="classtoolTransformation_1_1algorithmError.html#_details">...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Veřejné metody</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtoolTransformation.html#87ab2533fdbff67731d4d573ba945241">toolTransformation</a> ()</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Konstruktor transformace nástroje.  <a href="#87ab2533fdbff67731d4d573ba945241"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtoolTransformation.html#3b080456010bab0e9b9fb4da6c5bd01e">setParam</a> (float, float)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nastaví parametr nástroje a výšku.  <a href="#3b080456010bab0e9b9fb4da6c5bd01e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtoolTransformation.html#bb638b68e7ad62c99dc21d7e84d66bb4">setMoves</a> (bool)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Aplikovat výšku na rychlo posuvy.  <a href="#bb638b68e7ad62c99dc21d7e84d66bb4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="bfed160611972d2dd26cb13f27103a1b"></a><!-- doxytag: member="toolTransformation::getMoves" ref="bfed160611972d2dd26cb13f27103a1b" args="() const " -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtoolTransformation.html#bfed160611972d2dd26cb13f27103a1b">getMoves</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Nastavení aplikace na rychloposuv. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtoolTransformation.html#443c7a2566d84adde776fc1d2edbb8cd">setCommonPoint</a> (bool)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Společný koncový bod.  <a href="#443c7a2566d84adde776fc1d2edbb8cd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="145addbc4b49c005009202ae7480fc27"></a><!-- doxytag: member="toolTransformation::getCommonPoint" ref="145addbc4b49c005009202ae7480fc27" args="() const " -->
bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtoolTransformation.html#145addbc4b49c005009202ae7480fc27">getCommonPoint</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Vrací status společného bodu. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="c9070bd2234b84638a4e1d79c94e1f32"></a><!-- doxytag: member="toolTransformation::getToolRadius" ref="c9070bd2234b84638a4e1d79c94e1f32" args="() const " -->
float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtoolTransformation.html#c9070bd2234b84638a4e1d79c94e1f32">getToolRadius</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Vrací přírůstek nástroje. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="216a8d76ee2590fd162916de1be0474e"></a><!-- doxytag: member="toolTransformation::getDepth" ref="216a8d76ee2590fd162916de1be0474e" args="() const " -->
float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtoolTransformation.html#216a8d76ee2590fd162916de1be0474e">getDepth</a> () const </td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Vrací přírůstek výšky. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classgObject.html">gObject</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtoolTransformation.html#d6c270f8c172a3fa7b32ab75baccb1d0">apply</a> (<a class="el" href="classgObject.html">gObject</a> &amp;)  throw (algorithmError)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Aplikuje transformace na objekt.  <a href="#d6c270f8c172a3fa7b32ab75baccb1d0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="classgObject.html">gObject</a> &amp;&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtoolTransformation.html#4c35fde5ad8c1931090b7b92e5429b94">apply</a> (<a class="el" href="classgObjectContainer.html">gObjectContainer</a> &amp;)  throw (algorithmError)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Aplikuje transformace na kontejner.  <a href="#4c35fde5ad8c1931090b7b92e5429b94"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Statické veřejné metody</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtoolTransformation.html#fb85c3d61b1d975f6e029a7c992f5d4f">lineIntersect</a> (float *, float *, float *, float *)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Průnik přímky a přímky.  <a href="#fb85c3d61b1d975f6e029a7c992f5d4f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static bool&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtoolTransformation.html#d03b62dd8fbef0e6ae07c29eb370d841">isLinearlyIndependent</a> (float *, float *)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Linearní závislost dvou vektorů.  <a href="#d03b62dd8fbef0e6ae07c29eb370d841"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtoolTransformation.html#845db84d740e747a6f4bf5a8b6f98b1a">quadraticEquation</a> (float, float, float, float *)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Řešení kvadratické rovnice.  <a href="#845db84d740e747a6f4bf5a8b6f98b1a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtoolTransformation.html#de4d1ea0ef382ae83e4caaaf0b1d19b5">lineArcIntersect</a> (float *, float *, float *, float, float *)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Průnik přímky a kružnice.  <a href="#de4d1ea0ef382ae83e4caaaf0b1d19b5"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtoolTransformation.html#e7f49a52a1b825763a0d025f8b9e1469">arcIntersect</a> (float *, float, float *, float, float *, float *)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Průnik kružnice a kružnice.  <a href="#e7f49a52a1b825763a0d025f8b9e1469"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtoolTransformation.html#c907043f371675a643eeb08cf8fab487">arcAngle</a> (float *, float *)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Úhel vektorů.  <a href="#c907043f371675a643eeb08cf8fab487"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtoolTransformation.html#ebd0b9a8e57334a721adb281ca4e610d">getUnitVector</a> (float *, float *, float *)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Norma vektoru.  <a href="#ebd0b9a8e57334a721adb281ca4e610d"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailní popis</h2>
Transformace nástroje. 
<p>
Provadí transformace nástroje, jako je změna jeho poloměru, nebo jeho výšky. Je třeba zdůraznit, že není známa přesná velikost nástroje , proto všechny operace provádíme na základě přírůstku. Přírustek může být i záporný. Tranformace má za úkol dodržet předem daná pravidla. Počet bodů před transformací a po tranformaci musí zůstat stejný, z tohoto důvodu může nastat vyjímka <a class="el" href="classtoolTransformation_1_1algorithmError.html" title="Vyjímka vyhozená při transformaci.">algorithmError</a>, která ukazuje na nepoužítelnost transformace pro dané parametry. Tranformace se nejlépe hodí pro malé změny poloměru nástroje. <hr><h2>Dokumentace konstruktoru a destruktoru</h2>
<a class="anchor" name="87ab2533fdbff67731d4d573ba945241"></a><!-- doxytag: member="toolTransformation::toolTransformation" ref="87ab2533fdbff67731d4d573ba945241" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">toolTransformation::toolTransformation           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Konstruktor transformace nástroje. 
<p>
Nastaví přírusky na 0 a flag na false. 
</div>
</div><p>
<hr><h2>Dokumentace k metodám</h2>
<a class="anchor" name="4c35fde5ad8c1931090b7b92e5429b94"></a><!-- doxytag: member="toolTransformation::apply" ref="4c35fde5ad8c1931090b7b92e5429b94" args="(gObjectContainer &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classgObject.html">gObject</a> &amp; toolTransformation::apply           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classgObjectContainer.html">gObjectContainer</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>container</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>  throw (<a class="el" href="classtoolTransformation_1_1algorithmError.html">algorithmError</a>)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Aplikuje transformace na kontejner. 
<p>
Při aplikaci transformací může dojít k vyjímce a objekt může zustat poškozený, z tohoto důvodu je bezpečné používat kopii původního kontejneru. <dl compact><dt><b>Parametry:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>container</em>&nbsp;</td><td>Kontejner. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="d6c270f8c172a3fa7b32ab75baccb1d0"></a><!-- doxytag: member="toolTransformation::apply" ref="d6c270f8c172a3fa7b32ab75baccb1d0" args="(gObject &amp;)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classgObject.html">gObject</a> &amp; toolTransformation::apply           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classgObject.html">gObject</a> &amp;&nbsp;</td>
          <td class="paramname"> <em>object</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td>  throw (<a class="el" href="classtoolTransformation_1_1algorithmError.html">algorithmError</a>)</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Aplikuje transformace na objekt. 
<p>
Při aplikaci transformací může dojít k vyjímce a objekt může zustat poškozený, z tohoto důvodu je bezpečné používat kopii původního objektu. <dl compact><dt><b>Parametry:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>object</em>&nbsp;</td><td>Objekt. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="c907043f371675a643eeb08cf8fab487"></a><!-- doxytag: member="toolTransformation::arcAngle" ref="c907043f371675a643eeb08cf8fab487" args="(float *, float *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float toolTransformation::arcAngle           </td>
          <td>(</td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>S</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>P</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Úhel vektorů. 
<p>
Změří úhel v kružnici. Úhel je měřen v radianech v intervalu &lt;0, 2PI&gt;. <dl compact><dt><b>Parametry:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>S</em>&nbsp;</td><td>Střed kružnice S[2]. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>P</em>&nbsp;</td><td>Bod na kruřnici P[2]. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Návratová hodnota:</b></dt><dd>Vrací úhel. </dd></dl>

</div>
</div><p>
<a class="anchor" name="e7f49a52a1b825763a0d025f8b9e1469"></a><!-- doxytag: member="toolTransformation::arcIntersect" ref="e7f49a52a1b825763a0d025f8b9e1469" args="(float *, float, float *, float, float *, float *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int toolTransformation::arcIntersect           </td>
          <td>(</td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>S0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>r0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>S1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>r1</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>P0</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>P1</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Průnik kružnice a kružnice. 
<p>
Máme kružnici 1. -&gt; (x - S0[0])**2 + (y - S0[1])**2 = r0**2 a ružnici 2. -&gt; (x - S1[0])**2 + (y - S1[1])**2 = r1**2. Hledáne jejich společné body (x, y). Vrací počet řešení a neošetřuje možnost nekonečno mnoho řešení. <dl compact><dt><b>Parametry:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>S0</em>&nbsp;</td><td>Střed první kružnice S0[2]. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>r0</em>&nbsp;</td><td>Poloměr první kružnice r0[2]. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>S1</em>&nbsp;</td><td>Střed druhé kružnice S1[2]. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>r1</em>&nbsp;</td><td>Poloměr druhé kružnice r0[2] </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>P0</em>&nbsp;</td><td>První společný bod P0[2]. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>P1</em>&nbsp;</td><td>Druhý společný bod P1[2]. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Návratová hodnota:</b></dt><dd>Vrací počet řešení, v případě jen jednoho řešení, je uloženo v bodu P0. </dd></dl>

</div>
</div><p>
<a class="anchor" name="ebd0b9a8e57334a721adb281ca4e610d"></a><!-- doxytag: member="toolTransformation::getUnitVector" ref="ebd0b9a8e57334a721adb281ca4e610d" args="(float *, float *, float *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void toolTransformation::getUnitVector           </td>
          <td>(</td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>M</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>N</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>v</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Norma vektoru. 
<p>
Z daných bodů se určí normovaný vektor(vektor o velikosti |v| = 1). <dl compact><dt><b>Parametry:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>M</em>&nbsp;</td><td>První bod M[2]. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>N</em>&nbsp;</td><td>Druhý bod N[2]. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>v</em>&nbsp;</td><td>Normovaný vektor v[2]. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="d03b62dd8fbef0e6ae07c29eb370d841"></a><!-- doxytag: member="toolTransformation::isLinearlyIndependent" ref="d03b62dd8fbef0e6ae07c29eb370d841" args="(float *, float *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool toolTransformation::isLinearlyIndependent           </td>
          <td>(</td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>m</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Linearní závislost dvou vektorů. 
<p>
Vrací true, pokud jsou vektory linearně nezávislé. Je dobré ho použít s metodou lineIntersect. <dl compact><dt><b>Parametry:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>Vektor p[2]. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>m</em>&nbsp;</td><td>Vektor m[2]. </td></tr>
  </table>
</dl>

</div>
</div><p>
<a class="anchor" name="de4d1ea0ef382ae83e4caaaf0b1d19b5"></a><!-- doxytag: member="toolTransformation::lineArcIntersect" ref="de4d1ea0ef382ae83e4caaaf0b1d19b5" args="(float *, float *, float *, float, float *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int toolTransformation::lineArcIntersect           </td>
          <td>(</td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>P</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>S</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>t</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Průnik přímky a kružnice. 
<p>
Máme kružnici -&gt; (x - S[0])**2 + (y - S[1])**2 = r**2 a přímku -&gt; (x, y) = P + p * t. Hledáne jejich společné body (x, y). <dl compact><dt><b>Parametry:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>P</em>&nbsp;</td><td>Bod přímky P[2]. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>Směrový vektor přímky p[2]. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>S</em>&nbsp;</td><td>Bod středu kružnice S[2]. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>r</em>&nbsp;</td><td>Poloměr kružnice. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>Do pole velikosti dva jsou umístěna řešení, v případě jednoho řešení (přímka je tečna) se hodnota nachází v poli s indexem 0. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Návratová hodnota:</b></dt><dd>Vrací počet řešení. </dd></dl>

</div>
</div><p>
<a class="anchor" name="fb85c3d61b1d975f6e029a7c992f5d4f"></a><!-- doxytag: member="toolTransformation::lineIntersect" ref="fb85c3d61b1d975f6e029a7c992f5d4f" args="(float *, float *, float *, float *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float toolTransformation::lineIntersect           </td>
          <td>(</td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>P</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>N</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>p</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>n</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Průnik přímky a přímky. 
<p>
Máme dvě přímky dané parametricky: přímka 1. -&gt; P + p * t přímka 2. -&gt; N + n * t0. Pokud přímky nejsou linearně závislé, najde t, pro který mají společný bod. <dl compact><dt><b>Parametry:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>P</em>&nbsp;</td><td>Bod první přínky P[2]. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>N</em>&nbsp;</td><td>Bod druhé přímky N[2]. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>p</em>&nbsp;</td><td>Směrový vektor první přímky p[2]. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>n</em>&nbsp;</td><td>Směrový vektor druhé přímky n[2]. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Návratová hodnota:</b></dt><dd>Vrací velikost t, pro které mají přímky společný bod. </dd></dl>

</div>
</div><p>
<a class="anchor" name="845db84d740e747a6f4bf5a8b6f98b1a"></a><!-- doxytag: member="toolTransformation::quadraticEquation" ref="845db84d740e747a6f4bf5a8b6f98b1a" args="(float, float, float, float *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int toolTransformation::quadraticEquation           </td>
          <td>(</td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>b</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>c</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float *&nbsp;</td>
          <td class="paramname"> <em>x</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Řešení kvadratické rovnice. 
<p>
Používá se při výpočtu průsečíku kružnice s přímkou. Řeší kavadratickou rovnici ve tvaru a*x**2 + b*x + c = 0. Vrací počet řešení, které může nabývat hodnot 0, 1, 2. <dl compact><dt><b>Parametry:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>a</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>b</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>c</em>&nbsp;</td><td></td></tr>
    <tr><td valign="top"></td><td valign="top"><em>x</em>&nbsp;</td><td>Do pole velikosti dva x[2] jsou umístěna řešení, v případě jednoho řešení se hodnota nachází v poli s indexem 0. </td></tr>
  </table>
</dl>
<dl class="return" compact><dt><b>Návratová hodnota:</b></dt><dd>Vrací počet řešení. </dd></dl>

</div>
</div><p>
<a class="anchor" name="443c7a2566d84adde776fc1d2edbb8cd"></a><!-- doxytag: member="toolTransformation::setCommonPoint" ref="443c7a2566d84adde776fc1d2edbb8cd" args="(bool)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void toolTransformation::setCommonPoint           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>boolean</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Společný koncový bod. 
<p>
Pokud první a poslední bod se nachází na stejných souřadnicích (x, y) je mezi nimi spočítán průsečík, za předpokladu že je nastaveno true. 
</div>
</div><p>
<a class="anchor" name="bb638b68e7ad62c99dc21d7e84d66bb4"></a><!-- doxytag: member="toolTransformation::setMoves" ref="bb638b68e7ad62c99dc21d7e84d66bb4" args="(bool)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void toolTransformation::setMoves           </td>
          <td>(</td>
          <td class="paramtype">bool&nbsp;</td>
          <td class="paramname"> <em>boolean</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Aplikovat výšku na rychlo posuvy. 
<p>
Pokud je nastaveno true, přírůstek výšky je aplikován i na rychloposuvy G0. 
</div>
</div><p>
<a class="anchor" name="3b080456010bab0e9b9fb4da6c5bd01e"></a><!-- doxytag: member="toolTransformation::setParam" ref="3b080456010bab0e9b9fb4da6c5bd01e" args="(float, float)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void toolTransformation::setParam           </td>
          <td>(</td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>z</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Nastaví parametr nástroje a výšku. 
<p>
Parametr nástroje se vždy uvádí jako rozdíl mezi původní velikostí nástoje a novou velikostí, tedy původní velikost - nová velikost. Výška se taktéž uvádí jako rozdíl mezi původní výškou a novou výškou. <dl compact><dt><b>Parametry:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>r</em>&nbsp;</td><td>Přírustek nástroje. </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>z</em>&nbsp;</td><td>Přířůstek k výšce. </td></tr>
  </table>
</dl>

</div>
</div><p>
<hr>Dokumentace pro tuto třídu byla generována z následujících souborů:<ul>
<li>src/<a class="el" href="transformation_8h-source.html">transformation.h</a><li>src/transformation.cpp</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generováno Tue Mar 2 10:34:17 2010 pro projekt Bakalarka programem&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
</body>
</html>
